from django.db import models

# Create your models here.

class Area(models.Model):
    """省市区"""
    # 核心修改：显式定义 id 为 AutoField（对应 MySQL int(11) 自增）
    id = models.AutoField(primary_key=True, verbose_name='地区ID')
    name = models.CharField(max_length=64, verbose_name='地区名称')
    parent = models.ForeignKey('self', on_delete=models.SET_NULL,
                               related_name='subs',
                               null=True,
                               blank=True,
                               verbose_name='上级行政区划')
    #related_name 关联模型的名字
    #默认是 关联模型小写_set  area_set
    #我们可以通过related_name修改默认是名字，现在改为了 subs
    class Meta:
        db_table = 'tb_areas'
        verbose_name = '省市区'
        verbose_name_plural = '省市区'

    def __str__(self):
        return self.name

"""
省市区
id       name       parent_id
10000    河北省      NULL

10100    保定市      10000
10200    石家庄市    10000
10300    唐山市      10000

10101    雄县       10100
10102    安新县     10100

查询省份信息
select * from tb_areas where parent_id is NULL;
    Area.objects.filter(parent=None)
    Area.objects.filter(parent_id__isnull=True)
    Area.objects.filter(parent__isnull=True)

查询市信息
select * from tb_areas where parent_id = 610000;
    Area.objects.filter(parent=610000)
    Area.objects.filter(parent_id=610000)
    province=Area.objects.get(id=610000)
    province.subs.all()

查询区县信息
select * from tb_areas where parent_id = 610100;
    Area.objects.filter(parent=610100)
    Area.objects.filter(parent_id=610100)
    city=Area.objects.get(id=610100)
    city.subs.all()
"""